【JavaScript】戻り値(return) - 関数の処理結果を値で返す

【JavaScript】戻り値(return) - 関数の処理結果を値で返す

JavaScriptの戻り値について解説します。

検証環境

戻り値

戻り値は“関数の処理結果を呼び出し元に返す仕組み”です。

戻り値を使うには『戻り値の定義』と『戻り値の受け取り』の処理を記述します。

戻り値の定義

関数の呼び出し元に返す値を関数に定義します。

基本構文

function 関数名( 仮引数1, 仮引数2 ... ) {
    // 処理...
    
    return 戻り値;
}

戻り値の定義はreturn 戻り値の部分です。

戻り値には変数などを記述でき、戻り値がないreturn;のみも可能です。

サンプル

function addition( x, y ) {
    const result = x + y;
    ___ih_hl_start
    return result;
    ___ih_hl_end
}
 

3行目のreturn resultが戻り値の定義です。

変数resultは仮引数xyの合計値であり、その値を戻り値として返しています。

戻り値の受け取り

関数の呼び出し元で戻り値を受け取ることができます。

基本構文

関数名( 実引数1, 実引数2 ... )

戻り値のある関数の呼び出しは、戻り値がない場合と同じです。

サンプル

function addition( x, y ) {
    const result = x + y;
    return result;
}

___ih_hl_start
console.log(addition(3, 8));
___ih_hl_end
11

6行目でaddition関数を呼び出しています。

addition関数は変数resultを戻り値としており、6行目の呼び出しでは11が記憶されています。

呼び出し元では戻り値を受け取りますが、そのイメージは『関数の呼び出し』が『戻り値』に置き変わるイメージです。

例えば、6行目はconsole.log(addition(3, 8))の呼び出し部分であるaddition(3, 8)11に置き変わり、console.log(11)となるイメージです。

そのため、実行結果のようにコンソールには11が出力されます。

また、戻り値は代入演算子で変数に記憶することも可能です。

function addition( x, y ) {
    const result = x + y;
    return result;
}

___ih_hl_start
let total = addition(3, 8);
___ih_hl_end

console.log(total);
11

こちらも『関数の呼び出し』が『戻り値』で置き変わるイメージで、let total = addition(3, 8)let total = 11と解釈すると分かりやすくなります。

複数のreturn

1つの関数に複数のreturnを定義できますが、returnを実行すると関数の処理は終了され、以降の処理は実行されません。

function calc( x, y ) {
    console.log("Addition");
    const result1 = x + y;
    ___ih_hl_start
    return result1;
    ___ih_hl_end
    
    console.log("Subtraction");
    const result2 = x - y;
    ___ih_hl_start
    return result2;
    ___ih_hl_end
}

let result = calc(3, 8);

console.log(result);
Addition
11

calc関数に2つのreturnがあります。

この関数は呼び出すと必ず1つ目のreturn(4行目)が実行されるため、以降の処理(6〜8行目)は実行されません。

そのため、複数のreturnを定義する場合は、if文などの条件分岐でreturnが実行されるケースを制御します。

function calc( type, x, y ) {
    if( type == "+" ) {
        console.log("Addition");
        const result1 = x + y;
        return result1;
    } else if( type == "-" ) {
        console.log("Subtraction");
        const result2 = x - y;
        return result2;
    }
}

let r1 = calc("+", 3, 8);
console.log(r1);

let r2 = calc("-", 3, 8);
console.log(r2);
Addition
11
Subtraction
-5